package com.wicket.okrcomponent.biz.service.dto.req;

import com.wicket.okrcomponent.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc ImplementWorkTaskPositionMsgHandleComReqDto
 * @使用场景
 */
@Data
public class ImplementWorkTaskPositionMsgHandleComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 高/中/基层操作场景 TOP:高层 MID:中层 BASIC:基层 UCD:UCD框架
   */
  @ApiModelProperty("高/中/基层操作场景")
  private String batchOperateScene;

  /**
   * 工作任务对象类型 PROJECT:项目 TASK:任务 PROBLEM:问题
   */
  @ApiModelProperty("工作任务对象类型")
  private String workTaskObjectType;

  /**
   * 安排主体类型编码 OMS_ORG_ORGANIZATION:组织表 OMS_ORG_DEPT:部门表
   */
  @ApiModelProperty("安排主体类型编码")
  private String arrangeSubjectTypeCode;

  /**
   * 安排主体ID
   */
  @ApiModelProperty("安排主体ID")
  private String arrangeSubjectId;

  /**
   * 部门ID
   */
  @ApiModelProperty("安排部门ID")
  private String deptId;

  /**
   * 组织ID
   */
  @ApiModelProperty("安排组织ID")
  private String organizationId;

  /**
   * 接收部门ID
   */
  @ApiModelProperty("接收部门ID")
  private String receiveSubjectId;

  /**
   * 变更后工作任务状态 TURN_TO_BE_SIGNED:提交转待签收 TURN_TO_ONGOING:提交转进行中 CONFIRM_SIGNED:确认签收 SIGNED_TURN_TO_OVERDUE:待签收转已逾期（作废） ONGOING_TURN_TO_OVERDUE:进行中转已逾期 ONGOING_TURN_TO_SUCCESS:进行中转成功 OVERDUE_TURN_TO_SUCCESS:已逾期转成功 TURN_TO_FAIL:转失败
   */
  @NotNull(message = "变更后工作任务状态不能为空")
  @ApiModelProperty("变更后工作任务状态")
  private String alterWorkTaskState;

  /**
   * 是否逾期 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否逾期")
  private String isOverdue;

  /**
   * 负责人账号
   */
  @NotNull(message = "负责人账号不能为空")
  @ApiModelProperty("负责人账号")
  private String principalUserId;

  /**
   * 负责人身份人员ID
   */
  @ApiModelProperty("负责人身份人员ID")
  private String principalOriginalRoleMemberId;

  /**
   * 负责人就职记录ID
   */
  @ApiModelProperty("负责人就职记录ID")
  private String principalInductionRecordId;

  /**
   * 主管账号
   */
  @NotNull(message = "主管账号不能为空")
  @ApiModelProperty("主管账号")
  private String directorUserId;

  /**
   * 主管身份人员ID
   */
  @ApiModelProperty("主管身份人员ID")
  private String directorOriginalRoleMemberId;

  /**
   * 主管就职记录ID
   */
  @ApiModelProperty("主管就职记录ID")
  private String directorInductionRecordId;

}
